package com.hl.payServer.model.enums;

/**
 * 交易类型
 */
public enum TradeType {


    /**
     * 微信小程序支付
     */
    MINI("MINI"),

    /**
     * 微信公众号支付
     */
    JSAPI("JSAPI"),

    /**
     * 原生扫码支付
     */
    NATIVE("NATIVE"),

    /**
     * APP支付
     */
    APP("APP"),

    /**
     * 刷卡支付
     */
    MICROPAY("MICROPAY"),

    /**
     * 支付
     */
    PAY("PAY"),

    /**
     * 退款
     */
    REFUND("REFUND"),
    
    /**
     * 企业付款
     */
    COMPANYPAY("COMPANYPAY"),

    /**
     * 提现
     */
    WITHDRAW("WITHDRAW"),

    /**
     * 关闭订单
     * 只有等待买家付款状态下才能发起交易关闭
     */
    CLOSE("CLOSE"),

    /**
     * 第三方回调
     */
    NOTIFY3TD("NOTIFY3TD"),

    /**
     * 支付平台回调业务系统
     */
    NOTIFY("NOTIFY"),

    /**
     * 对账单更新
     */
    UPDATEBILL("UPDATEBILL");


    private String type;

    TradeType(String type){
        this.type = type;
    }

    public String type(){
        return type;
    }

    public static TradeType from(String s){
        for (TradeType tt : TradeType.values()){
            if (tt.type().equals(s)){
                return tt;
            }
        }
        throw new IllegalArgumentException("unknown trade type: " + s);
    }
}
